///******************** NG.Respate(C)  **********************************
//* 产品名称: Respate 科技
//* 文件名称: signal.c
//* 程序作者: 雷帕特公司(南宫子萍)
//* 程序版本: V1.1														   
//* 编制日期: 2019/1/29
//* 功能描述: 系统日志
//* QQ:	2085827949
//**********************************************************************/

#include "stdio.h"
#include "stdlib.h"
#include "lap_lib.h"
#include "laperro.h"

// 权限表示
/*      t  u   g  o
        - rw- r-- r--
    t: 文件类型
    u: 用户权限
    g：组权限
    o: 其它用户权限
*/


#include <stdlib.h>
// int mkstemp(char *template);

// 修改文件权限
#include <sys/stat.h>
#include <fcntl.h>           /* Definition of AT_* constants */
#include <sys/stat.h>
// int chmod(const char *pathname, mode_t mode);
// int fchmod(int fd, mode_t mode);


// 检测文件权限
#include <unistd.h>
#include <fcntl.h>           /* Definition of AT_* constants */

// int access(const char *pathname, int mode);
// int faccessat(int dirfd, const char *pathname, int mode, int flags);

#define FORMT(ret) ((ret==0)? ("OK") : ("Err!"))
static void Lap_access()
{

  // 1.创建临时文件
  char file_path[]="temp.lap-XXXXXX";
  int fd = mkstemp(file_path);
  LAP_NegErrRet(fd,-1,"mkstemp");
  printf("%s created!\r\n",file_path);

  // 2.修改文件权限
  int ret = chmod(file_path, S_IRUSR |S_IWUSR);
  LAP_NegErrRet(ret,-1,"chmod Err");
  printf("chmod S_IRUSER|S_IWUSR\r\n");

  // 3.检测文件权限
  printf("R_OK:%s\r\n",FORMT(access(file_path,R_OK)));
  printf("W_OK:%s\r\n",FORMT(access(file_path,W_OK)));
  printf("X_OK:%s\r\n",FORMT(access(file_path,X_OK)));

  // 4.关闭文件
  close(fd);
  unlink(file_path);  // 解除连接（删除文件）
}

#if 0
int main(void)
{
  LAP_ErrOutSet(NULL);  // 错误输出 初始化

  Lap_access();


  return 0;
}
#endif